﻿/*
 * Jonathan
 * Created by: Jonathan Montiverdi
 * Date: 7/16/2012
 * License: http://jonathan.codeplex.com/license
 */
using System;
using System.Collections.Generic;

using Awesomium.Core;

namespace Jonathan.Logic
{
   /// <summary>
   /// Description of IDataViewerModel.
   /// </summary>
   public interface IDataViewerModel
   {
      /// <summary>
      /// Opens the given link.
      /// </summary>
      /// <param name="linkToOpen">Link to data to open.</param>
      void Open (string linkToOpen);
      
      /// <summary>
      /// Gets or Sets the html to display in the data viewer.
      /// </summary>
      string Html { get; set; }
      
      /// <summary>
      /// Gets the list of a global javascript callbacks if any.
      /// </summary>
      IDictionary <string, JSCallback> GetCallbacks ();
      
      /// <summary>
      /// Event used to execute an html change request.
      /// </summary>
      event HtmlChangeEventHandler HtmlChangeRequested;
      
      /// <summary>
      /// Event used to notify the item is closing.
      /// </summary>
      event EventHandler ItemClosing;
   }
}
